/**
 * 
 */

package CCT220_Aula13_Exercicio02_13106;


import javax.swing.JOptionPane;


/**
 * </br>******************************
 * </br>Project: CCT220
 * </br>Package: CCT220_Aula13_Exercicio02_13106
 * </br>Class: LimiteDisciplina
 * </br>Last Change: 04/10/2011 23:54:20
 * </br>Description: Implement the visual part of the Disciplina's entity
 * </br>******************************</br>
 * 
 * @author marcel
 * @author 13106
 * 
 */
public class LimiteDisciplina {
	private final ControleDisciplina ctrDisc;


	/**
	 * </br>******************************
	 * </br>Constructor for
	 * </br>Package: CCT220_Aula13_Exercicio02_13106
	 * </br>Class: LimiteDisciplina
	 * </br>LastChange: 04/10/2011 23:54:18
	 * </br>******************************</br>
	 * 
	 * @param objPControleDisc
	 */
	public LimiteDisciplina(ControleDisciplina objPControleDisc) {

		ctrDisc = objPControleDisc;
		CapturaDados();
	}


	/**
	 * </br>******************************
	 * </br>Package: CCT220_Aula13_Exercicio02_13106
	 * </br>Class: LimiteDisciplina
	 * </br>Method: CapturaDados
	 * </br>Last Change: 04/10/2011 23:54:15
	 * </br>Description: Generates a menu in a JOptionPane
	 * </br>******************************</br>
	 * 
	 */
	private void CapturaDados() {

		int escolha;
		do {
			do {
				String escolhaInformada = JOptionPane
				        .showInputDialog("Escolha uma opção do menu:\n"
				                + "[1] Adiciona disciplina\n"
				                + "[2] Lista uma disciplina\n"
				                + "[3] Lista disciplinas\n" + "[4] Finaliza");
				escolha = Integer.parseInt(escolhaInformada);
			} while ((escolha < 1) || (escolha > 4));
			if (escolha != 4) {
				execEscolha(escolha);
			} else {
				System.exit(0);
			}
		} while (true);
	}


	/**
	 * </br>******************************
	 * </br>Package: CCT220_Aula13_Exercicio02_13106
	 * </br>Class: LimiteDisciplina
	 * </br>Method: execEscolha
	 * </br>Last Change: 04/10/2011 23:54:12
	 * </br>Description: Chose the correct way according to opcao
	 * </br>******************************</br>
	 * 
	 * @param intPEscolha
	 */
	private void execEscolha(int intPEscolha) {

		switch (intPEscolha) {
			case 1: {
				cadastraDisciplina();
				break;
			}
			case 2: {
				int intLCodigo = Integer.parseInt(JOptionPane
				        .showInputDialog("Digite o código da disciplina"));
				imprimeDisciplina(intLCodigo);
				break;
			}
			case 3: {
				imprimeDisciplinas();
			}
		}
	}


	/**
	 * </br>******************************
	 * </br>Package: CCT220_Aula13_Exercicio02_13106
	 * </br>Class: LimiteDisciplina
	 * </br>Method: cadastraDisciplina
	 * </br>Last Change: 04/10/2011 23:54:09
	 * </br>Description: Read some data and call ctrDisc.insereDisciplina()
	 * </br>******************************</br>
	 * 
	 */
	private void cadastraDisciplina() {

		String retorno = JOptionPane.showInputDialog("Informe o código");
		int codigo = Integer.parseInt(retorno);
		String nome = JOptionPane.showInputDialog("Informe o nome");
		retorno = JOptionPane.showInputDialog("Informe o carga horária");
		int cargaHoraria = Integer.parseInt(retorno);
		ctrDisc.insereDisciplina(codigo, nome, cargaHoraria);
	}


	/**
	 * </br>******************************
	 * </br>Package: CCT220_Aula13_Exercicio02_13106
	 * </br>Class: LimiteDisciplina
	 * </br>Method: imprimeDisciplinas
	 * </br>Last Change: 04/10/2011 23:54:06
	 * </br>Description: Call ctrDisc.imprimeDisciplina() and show
	 * </br>******************************</br>
	 * 
	 */
	public void imprimeDisciplinas() {

		JOptionPane.showMessageDialog(null, ctrDisc.imprimeDisciplinas(),
		        "Relação de Disciplinas", JOptionPane.INFORMATION_MESSAGE);
	}


	/**
	 * </br>******************************
	 * </br>Package: CCT220_Aula13_Exercicio02_13106
	 * </br>Class: LimiteDisciplina
	 * </br>Method: imprimeDisciplina
	 * </br>Last Change: 04/10/2011 23:54:05
	 * </br>Description: Call ctrDisc.imprimeDiscipllina() and show
	 * </br>******************************</br>
	 * 
	 * @param pCodigo
	 */
	public void imprimeDisciplina(int pCodigo) {

		JOptionPane.showMessageDialog(null, ctrDisc.imprimeDisciplina(pCodigo),
		        "Informações da Disciplina", JOptionPane.INFORMATION_MESSAGE);
	}
}
